This invention relates generally to systems for operating general purpose computers, and more particularly, to a system wherein information contained in memory is organized into a plurality of files which may additionally contain symbols which identify executable functions.
In the prior art, in order to use a computer, a user had to learn the general command structure of both the operating system and of each specific program required to fulfill the user's needs. A second option available was to hire the services of consultants or experts to perform the necessary programming to use the computer. In addition, regardless of which solution was used, perfect recall of computer requests, commands, and protocols, a facility for errorless typing, and a high level of persistance were also necessary, or at least most helpful, for using the computer in a marginally efficient manner.
Problems encountered with such prior art arrangements are that:
1. The user had to learn the general command structure of the operating system.
2. The user had to remember the names of and parameters used with the program that handled his needs.
3. The user had to learn additional commands and utilities to manage the information and other files that were created by his programs.
4. The user had to type commands without any errors in typing.
5. The computer would evaluate, perform, and then discard a user's set of commands regardless of their correctness or of the number of times that a user entered them into the computer. This would compel a user to re-enter a set of commands each time he wished to use them despite the enormous volume of computer memory available.
Most commercially available programs fall into one of the categories listed below. Although some types have been developed to simplify the operation of computers or to allow the user to organize some procedures directly on the computer, all can be characterized as forcing the user to work within a highly rigorous framework and usually have additional demands associated with their use as well.
I. Menu: menus were an attempt to relieve the user of the memory burden of operating the computer system. Here, the user was presented with series of choices and had to select one of them. Some of these choices related to general areas of endeavor, others to specific program. In general, these menus were operated either by entering a numeric code corresponding to the selection, or by moving the cursor, or some other indicators, over the menu, using specific keys, such as the arrow keys. Examples of problems with menu systems are
1. Menus were generated by others, usually for general use, thereby being not specific to the user's needs.
2. Most, if not all, menus were difficult to modify or adapt to a user's specific needs or be changed as the needs changed.
3. Often, menus were cumbersome, e.g., requiring several menu transitions before the desired program was located.
4. Several transitions could be required to traverse from one menu to another despite the fact that they may be used in sequence for a specific task. Attempts were made to alleviate this problem by allowing the user to specify the numbers of several levels of menus, e.g., 4.3.5 in order to traverse from selection 4 of the current screen, to selection 5 of the screen chosen by selection 3. This solution required one to remember strings of arbitrary, nonmnemonic numbers instead of commands that at least often had some relation to the function they performed.
Examples of menu systems are:
STARBURST, VISIon, and other similar programs which do allow the user to design his own menu trees, or similar structures, to select programs and/or files. However, they do not generally allow a user to either modify the design while the user is carrying out a series of operations on the computer or add notes that the user may wish to retain on any menu screen. In addition, VISion, among other menu programs, place considerable demands on the resources of the computer for storage and display capabilities; and
IBM's SPF systen's approach, for use on IBM mainframes, provides the means by which screens can be created from which a user may choose fixed tools, programs, or access to other screen by typing a number entry from a given screen. However, the creation of these screens require that a person be skilled in the art thus cannot be altered by the average user.
II. Data Base Management Systems (DBMS's ): The general idea of DBMS's is to store regular information in such a manner as to speed access to it and to enable one to produce regular reports (by "regular" we mean of a specified, fixed, and generally inflexible format). Some problems with DBMS's are as follows:
1. The complex nature of the process, of determining the requirements of the data, e.g., size, type, format, etc., and converting this to the form that a DBMS can understand was often far beyond the abilities of the average user, let alone the casual one.
2. Information had to be grouped in records having fixed format with a specific field for each specific type of information hence DBMS'S are unsuitable for irregular types of data.
3. Information is only for fixed purposes.
III. Spreadsheets: The concept of spreadsheets reduced much of the data base problems to a tractable form and generally brought about an increase in the usage of computers by the less sophisticated user. Some problems associated with spreadsheets are as follows:
1. Assumed that most data was numeric.
2. Permitted the user to work anywhere on the screen, provided that he was on a cell.
3. Rarely have provisions for interfacing functions other than those supplied, e.g., if your spreadsheet does not have trigonometric functions, it's usually not possible to integrate a simple program that would handle them into the spreadsheet.
4. Spreadsheets can "remember" the mathematics/algorithms, however there are no provisions made to remember other things like combining other screens, and you can't program them to do anything but numeric sequential operations.
IV. Windows: A fancy way of displaying the output of several programs or files on one screen. Windows have the advantages that sometimes they provide a means of moving information from one window, say a spreadsheet, to another window, say a word processor. However, windows have the following problems associated with them:
1. Generally, window systems are plagued by programs not being designed to use the smaller portions of an already size-limited screen.
2. Even with an editor, they do not provide a way of routinely chaining screens or files into a network of information
V. Integrated systems: a means by which one can order and access groups of menus, files, programs, etc. These systems have the disadvantages that
1. They do not provide full control to the user.
2. Command structures are often exceedingly difficult.
Examples of integrated systems include Symphony and Framework
VI. Icons: Icons are graphic representations of a function that is provided by the computer system. Problems with icons are:
1. In general, although they allow the user to see related images, one is generally left with the arrangement of icons that the system programmer left for a hypothetical user. It is difficult to move icons to other files, if at all possible.
2. Icons can't be saved in user-created files, and in the event that you can, those files are incompatible with other programs as their format is stored like a data base file--using a specific and proprietary format.
Examples of systems using icons are in the Apple Corporation's family of LISA/Macintosh computers which use graphic images that function as commands. However, problems with such systems are that:
1. A user cannot modify the meaning of a graphic image or readily create his own without the additional use of extremely specialized skills and tools, e.g., other programs, and without placing extraordinary demands on the resources of the system's storage facility; and 2. LISA is an expensive system.
The system of instant invention departs from prior art operating systems and programs which have been used to control and operate a general-purpose computer, in that the computer's available resources are structured so that a user may use or operate the computer in a manner that complements and nearly duplicates the hierarchical and contextual nature of the user's mental processes and habits. In fact, under the system of instant invention, the very act of using or operating the computer necessarily produces a spontaneous, ordering, and reusable record, of a user's activities and interactions with the computer.
The system of the present invention relates to a method whereby the computer's output or display device is used as an interface on which a user, including one unskilled in the art, is free to input and edit directly whatever data or commands are pertinent to the activity which have been chosen to be performed. Data, as interpreted in this system, may include any form of information, e.g., normal text or graphics, notes or memos to the user, or commands to the computer or its peripherals. Furthermore, the user is not restricted to following a prescribed or rigorous format when preparing an interface, i.e., an interface may be configured in the manner most appropriate to the purpose at hand. Thus, it is an object of this invention to provide a user with a facility to organize information and operations on a computer in a manner reflective of the user's own logic, style, and needs.
Another element to the system of the present invention is the manner in which a user designates commands to the computer or its peripherals on an interface. Each general class of commands to the computer or its peripherals is uniquely associated within the system to a specific class of system symbols. Each class of system symbols, in turn, is associated with its own general form of representation which is consistently applied whenever a specific instance of the class is to be represented on an interface. Thus, it is another object of the invention to standardize and simplify the symbolic representation of any command to the computer or its peripherals on an interface.
Furthermore, the instant invention is capable of incorporating any command to the computer or its peripherals into its system in the form of a system symbol. It is another object of the instant invention to provide a system whereby any command to the computer or its peripherals may be incorporated into the system and expressed on an interface in the form of a system symbol so that it may be integrated into the system, as will be explained below.
The system also provides a consistent means by which a user may instruct the system to invoke any command to the computer or its peripherals, ie., the implicit request contained in any system symbol, on an interface. The method consists of a user performing a simple 2-action command: the first step allows the user to select which particular system symbol listed on the interface will be invoked and the second step will cause the system of the instant invention to automatically invoke its associated command to the computer or its peripherals. Significantly, this process may be directly initiated by the user at any time, i.e., the user may cause the system to search for and identify a system symbol and then invoke the command associated with that symbol immediately after it has been designated on an interface, or any time thereafter. Thus, it is still another object of the instant invention to enable a user to instruct the system to search for and identify, and also execute, the associated computer, or computer-controlled, command or function of any system symbol designated on an interface by a single, standardized method and, also, to be able to apply consistently this same process at any later point in time.
It is still another object of the invention to provide the operator of a computer with a reusable record of his prior interactions with the computer by automatically storing in a memory all newly created interfaces among the various files, or edited version thereof, in the form of a further file which may be recalled by the user at any time, as further explained below.
Thus a prime object of the system of the instant invention, by logical extension of the aforementioned objects, is to provide a means whereby the very act of a user using or operating a computer is the practical equivalent of the user creating a reusable interface which records all the specifics of that interaction.
Another command basic to the system of the present invention is the escape command. This command permits a user to backtrack between successively viewed screens without having to issue to the system any specific references to the preceding screen or screens. Thus, another object of the instant invention is to standardize the means by which a user may backtrack between, and view, any number of previously viewed files.
Another element principal to the instant invention is the system's hierarchical semi-stack processor, referred to herein as the "file map", or, more simply, the "map". Basically, the file map functions within the system as a storage unit wherein information identifying the files a user has accessed, and the latest status of each of these files within the system, is compiled and maintained by the system.
The file map is maintained by the system in reusable mode, i.e., in the form of a file which may be directly accessed by the user. In addition, and of central importance to the functioning and utility of the file map, the list of previously viewed files is maintained in system-integratable form, i.e., system symbols are used to designate the files listed in the map instead of the file names alone. This structuring of the file map permits a user to treat the map in a fashion similar to any other file within the system, as explained above.
Accordingly, it is a further object of the instant invention to provide a facility which both records and displays the relationship between the files that a user has accessed within the system and to provide a means whereby a user may utilize this facility either to access rapidly files, even if deep within the hierarchy of a related set of files, or to perform very rapid context switching between sets of files that are not conceptually related but that are both contained in the record.
The file map is also called upon by the system to provide whatever information is necessary for the system to restore a file, or the machine, to its status at prior termination whenever the system is so instructed. Thus, two other objects of the instant invention are to provide a method whereby a previously viewed file may be redisplayed by the system and whereby the user may easily exit and re-enter the system directly back to the exact position at prior termination.
A still further object of the invention is to provide a method whereby externally created files may be integrated for use into the structure of the system, irrespective of whether they are stored in on-line memory or transmitted as a data stream to a computer utilizing the system.
The system of the instant invention may also be incorporated for use in virtually any device having an imbedded computer, and most especially in those where there exists a requirement for a user to interact with the device. Thus, it is a further object of the invention to provide a system whereby the use, operation, or programming of a device may be simplified, standardized, and/or structured in the same manner as specified in the above listed objects.
General problems with information storage and retrieval when a request is not stated or formated correctly are the problems addressed in U.S. Pat. No. 4,068,298. In this known system, the seed module solution to those problems is quite different and the problem approach therein is more general than that of the instant invention.
An aid to an inexperienced user in directing a numerically controlled machine is disclosed in U.S. Pat. No. 4,010,356. The use of error messages, which force the user into the computer's method of operation, rather than the other way around, is still at the heart of this known system. As described in this reference, the computer accepts or rejects the user's responses rather than the user controlling the computer.
A series of patents assigned to Westinghouse attempt to set forth an operating system to aid the layman in programming. These patents include U.S. Pat. Nos. 4,215,406; 4,215,407; and 4,227,245. The patent set forth an interface system between the user and a computer system which has a certain degree of flexibility. However the solution proposed in these patents fails to provide the simplicity for the user and the extreme flexibility provided in the instant invention.
In the context of a word processing system there has been a method disclosed in U.S. Pat. No. 4,308,582 of defining initial processing parameters which aid inexperienced users. Although the instant invention can be used for word processing, it also has numerous other uses.
The use of hierarchical structures without scanning their contents is disclosed in U.S. Pat. No. 3,938,104. However, this reference does not disclose a hierarchical semi-stack processor which would provide to the operator a history of system use.
Finally, an interesting approach to making a computer think like a person, or at least in a way that complements the natural thinking of a person is set forth in U.S. Pat. No. 4,374,412. In this known system, the use of finate state machines in a natural grammar is again a quite different solution to a much broader problem than that addressed by instant invention.